function POSTReader(ts, denc, fh) {

	this.readValues = function() {

		var data = ts.getInputStream().read(fh.getContentLength());
		return decodeData(data);

	}

	function decodeData(data) {
		var bounds = fh.getBounds();
		
		var str_vals = data.split(bounds[0]);
			
		var ots = new Array();
		var len = str_vals.length - 2;
			
		for(var i = 0; i < len; i++) {
			var staticData = str_vals[i+1].substring(TITTValues.HTTP_NEWLINE_LENGTH, str_vals[i+1].length - TITTValues.HTTP_NEWLINE_LENGTH);
			var sis = new StaticInputStream(staticData);
							
			var hr = new HeadReader(sis);
			var t = new MultipartHead(hr.readHeadWFS(false)).getType();
			
			if(!denc.isDecodeable(t))
				ots[i] = new TypedObject(t, null);
			else {
				var val = sis.readFully();
				ots[i] = new TypedObject(t, denc.decode(t, val));
			}
		}
		return ots;	
	}	
}
